package com.ceair.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ceair.entity.SysDictData;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ceair.entity.request.dictionary.DictDataInOrUpReq;
import com.ceair.entity.request.dictionary.QueryDictDataReq;
import com.ceair.entity.vo.dictionary.SysDictDataVO;

/**
 * <p>
 * 字典数据表 服务类
 * </p>
 *
 * @author wangbaohai
 * @since 2025-03-27
 */
public interface ISysDictDataService extends IService<SysDictData> {

    /**
     * 分页查询字典数据。
     *
     * 该方法根据传入的查询条件对象，返回符合条件的字典数据分页结果。
     *
     * @param queryDictDataReq 查询条件对象，包含分页信息和筛选条件。
     *                         例如：页码、每页大小、字典类型、字典标签等。
     * @return 返回一个分页对象，包含查询到的字典数据列表以及分页相关信息。
     *         分页对象的泛型类型为 SysDictData，表示字典数据的实体类。
     */
    Page<SysDictData> queryDictDataWithPage(QueryDictDataReq queryDictDataReq);

    /**
     * 保存字典数据信息。
     *
     * @param dictDataInOrUpReq 包含字典数据的新增或更新请求对象。
     *                          该对象应包含必要的字段以完成字典数据的保存操作，
     *                          例如字典类型、字典标签、字典键值等信息。
     * @return 返回保存后的字典数据视图对象（SysDictDataVO）。
     *         该对象包含了保存操作后生成的字典数据详细信息，
     *         可用于后续的业务逻辑处理或展示。
     */
    SysDictDataVO save(DictDataInOrUpReq dictDataInOrUpReq);

}
